package com.uc3m.dsic.gestorZoo;

import java.sql.*;

/**
 * En esta clase se encuentran todos las operaciones que tratan principalmente
 * con salas
 * 
 * @author Noelia Garcia Toledo
 * @version 2.0
 */
public class GestorSala {

    Sala database;
    Connection con;
    ResultSet rs;
    Statement sentencia;

    /**
     * Dado un identificador de un zoo, devuelve las salas que contiene
     *
     * @param id_zoo
     *          identificador del zoo que queremos extraer la informacion
     *
     * @return El numero de salas del zoo.
     *
     * @throws Exception si se produce cualquier tipo de error.
     */
    public int getSalasByZoo(String id_zoo) throws Exception {

        int resultado = 0;
        int aux = 0;

        GestorZooInterface gtemp = new GestorZooAplicacion();
        /*se el resulset de la tabla Sala*/
        rs = gtemp.getTabla(GestorZooAplicacion.Tablas.SALA);

        while (rs.next()) { // pàra toda la tabla
            //si la sala pertenece al zoo...
            if (id_zoo.trim().toUpperCase().equals(rs.getString(4).trim().toUpperCase())) {
                resultado++;
                aux = 1;
            }
        }

        if(aux == 0){
            throw new ZooException("No existe ninguna ocurrencia en la " +
                    "base de datos con la cadena proporcionada");
        }

        return resultado;
    }

    /**
     * Obtiene el resultado concreto de la base de datos proporcionado por un
     * identificador de sala
     *
     * @param id_sala
     *          Identificador de la sala
     * @return Fila con todos los campos que coinciden con la clave proporcionada
     * @throws ZooException
     * @throws Exception
     */
    public Sala getSalabyId(String id_sala) throws ZooException, Exception {

        ResultSet rstemp;
        Sala sala_nueva = null;

        String idSala, nombreSala, zooSala;
        int aforoSala;

     
        GestorZooInterface gtemp = new GestorZooAplicacion();
        rstemp = gtemp.getTabla(GestorZooAplicacion.Tablas.SALA);

        while (rstemp.next()) {
              idSala = rstemp.getString(1).toUpperCase();
              if (id_sala.trim().toUpperCase().equals(idSala)) {
                   aforoSala = rstemp.getInt(2);
                   nombreSala = rstemp.getString(3).toUpperCase();
                   zooSala = rstemp.getString(4).toUpperCase();
                   sala_nueva = new Sala (idSala, aforoSala, nombreSala, zooSala);
                   //sala_nueva = new Sala(rstemp); //sala del puntero actual
                   break; //salimos, solo puede haber una id_sala unico
              }
        }

        return sala_nueva;
    }
}

/*
Animal -> para añadir un animal hace falta recuperar la sala dado un id_sala -->
 Hace falta una consulta getSalabyId(id)
 */
